﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	///<summary>
	///(Общ)
	///</summary>
	[DataContract]
	public enum ВидыРасчетовСКонтрагентами
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"30b4d531-8d2b-42a6-9f33-5b1b32af50df\", \"Представление\":\"ПоПриобретению\"}")]
		ПоПриобретению = 0,//По приобретению
		[EnumMember(Value = "{\"Ссылка\":\"8ba4c299-8fae-44ab-ad7d-47cf8c4c496c\", \"Представление\":\"ПоРеализации\"}")]
		ПоРеализации = 1,//По реализации
		[EnumMember(Value = "{\"Ссылка\":\"c74cb0e6-8425-40cb-8f84-15b03ac71323\", \"Представление\":\"Прочее\"}")]
		Прочее = 2,
	}
	public static partial class ВидыРасчетовСКонтрагентами_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid ПоПриобретению = new Guid("1b5b339f-af32-df50-42a6-8d2b30b4d531");//По приобретению
		public static readonly Guid ПоРеализации = new Guid("cf477dad-4c8c-6c49-44ab-8fae8ba4c299");//По реализации
		public static readonly Guid Прочее = new Guid("b015848f-c73a-2313-40cb-8425c74cb0e6");
		public static ВидыРасчетовСКонтрагентами Получить(this ВидыРасчетовСКонтрагентами Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ВидыРасчетовСКонтрагентами Получить(this ВидыРасчетовСКонтрагентами Значение, Guid Ссылка)
		{
			if(Ссылка == ПоПриобретению)
			{
				return ВидыРасчетовСКонтрагентами.ПоПриобретению;
			}
			else if(Ссылка == ПоРеализации)
			{
				return ВидыРасчетовСКонтрагентами.ПоРеализации;
			}
			else if(Ссылка == Прочее)
			{
				return ВидыРасчетовСКонтрагентами.Прочее;
			}
			return ВидыРасчетовСКонтрагентами.ПустаяСсылка;
		}
		public static byte[] Ключ(this ВидыРасчетовСКонтрагентами Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ВидыРасчетовСКонтрагентами Значение)
		{
			switch (Значение)
			{
				case ВидыРасчетовСКонтрагентами.ПоПриобретению: return ПоПриобретению;
				case ВидыРасчетовСКонтрагентами.ПоРеализации: return ПоРеализации;
				case ВидыРасчетовСКонтрагентами.Прочее: return Прочее;
			}
			return Guid.Empty;
		}
	}
}